{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "任务（30分钟）\n",
    "\n",
    "来源Directory 2 课后习题：\n",
    "\n",
    "　　购物车程序项目：\n",
    "\n",
    "　　要求： 1、运行程序后，让用户输入支付宝余额，然后打印我们的商品列表给用户。\n",
    "\n",
    "　　   　　2、让用户输入商品编号进行商品的购买。\n",
    "\n",
    "　　  　　 3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "\n",
    "　　　　   4、用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。\n",
    "```\n",
    "\n",
    "```\n",
    "1. 用户输入余额 = input()\n",
    "\n",
    "2. 商品信息是一个列表 = [\n",
    "       [商品名称1,价格1],\n",
    "       [商品名称2,价格2],\n",
    "       [商品名称3,价格3],\n",
    "       [商品名称4,价格4],\n",
    "       ...\n",
    "    ]\n",
    "\n",
    "3. 打印数据（print）\n",
    "\n",
    "\n",
    "4. 用户输入\n",
    "\n",
    "5. 用户输入的金额  与  选择商品的价格 对比\n",
    "    1. 钱够\n",
    "    2. 钱不够\n",
    "6. 可以随时退出 （用什么循环？）\n",
    "\n",
    "\n",
    "\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['珍珠奶茶小杯', 6],\n",
       " ['椰果奶茶中杯', 7],\n",
       " ['芝士奶盖大杯', 8],\n",
       " ['芋圆波波奶茶', 14],\n",
       " ['杨枝甘露', 8],\n",
       " ['多肉葡萄', 12]]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1. 商品列表\n",
    "goods_list = [\n",
    "    ['珍珠奶茶小杯',6],\n",
    "    ['椰果奶茶中杯',7],\n",
    "    ['芝士奶盖大杯',8],\n",
    "    ['芋圆波波奶茶',14],\n",
    "    ['杨枝甘露',8],\n",
    "    ['多肉葡萄',12]\n",
    "]\n",
    "goods_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'珍珠奶茶小杯'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# goods_list[0] 是不是还是一个列表？\n",
    "goods_list[0][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "goods_list[0][1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入你的支付宝余额：100\n",
      "----------商品信息----------\n",
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "请输入正确的商品编号（输入‘q’退出购买）：3\n",
      "已经将 【芋圆波波奶茶】加入到您的购物车，您的余额还有 【86】\n",
      "----------商品信息----------\n",
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "请输入正确的商品编号（输入‘q’退出购买）：23\n",
      "您选择的商品不存在，请输入正确的编号（输入‘q’退出购买）\n",
      "----------商品信息----------\n",
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "请输入正确的商品编号（输入‘q’退出购买）：2\n",
      "已经将 【芝士奶盖大杯】加入到您的购物车，您的余额还有 【78】\n",
      "----------商品信息----------\n",
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "请输入正确的商品编号（输入‘q’退出购买）：dnskj\n",
      "您输入有问题，请重新输入！请输入正确的商品编号（输入‘q’退出购买）\n",
      "----------商品信息----------\n",
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "请输入正确的商品编号（输入‘q’退出购买）：q\n",
      "您的购物车有【[['芋圆波波奶茶', 14], ['芝士奶盖大杯', 8]]】,您的余额还有【78】\n"
     ]
    }
   ],
   "source": [
    "### 1. 商品列表\n",
    "goods_list = [\n",
    "    ['珍珠奶茶小杯',6],\n",
    "    ['椰果奶茶中杯',7],\n",
    "    ['芝士奶盖大杯',8],\n",
    "    ['芋圆波波奶茶',14],\n",
    "    ['杨枝甘露',8]\n",
    "]\n",
    "### 要添加用户的商品列表：\n",
    "shopping_cart=[]\n",
    "\n",
    "# 2. 用户输入\n",
    "Alipay = int(input('请输入你的支付宝余额：'))\n",
    "\n",
    "# 3. 打印结果 :  商品编号：xxx , 商品的名称:xxx，商品价格: xxx\n",
    "# goods_list[0][0] 商品名称 goods_list[0][1] 商品价格\n",
    "\n",
    "# 占位符 %s s-->str\n",
    "# print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(0,goods_list[0][0],goods_list[0][1]))\n",
    "# print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(1,goods_list[1][0],goods_list[1][1]))\n",
    "# print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(2,goods_list[2][0],goods_list[2][1]))\n",
    "# print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(3,goods_list[3][0],goods_list[3][1]))\n",
    "# print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(4,goods_list[4][0],goods_list[4][1]))\n",
    "while True:\n",
    "    print('----------商品信息----------')\n",
    "    for i in range(len(goods_list)):\n",
    "        print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(i,goods_list[i][0],goods_list[i][1]))\n",
    "    # 4. 让用户输入商品编号进行商品的购买\n",
    "    choice = input('请输入正确的商品编号（输入‘q’退出购买）：') # input()默认是 str\n",
    "    #    Alipay VS 用户选择的商品的价格\n",
    "    \n",
    "    if choice.isdigit():\n",
    "    \n",
    "        # 一、用户输入的是编号\n",
    "        # ①. 编号在列表范围内\n",
    "        if int(choice) >=0 and int(choice) < len(goods_list):\n",
    "            # ------------------------------------------------------------------------\n",
    "            # 1. 钱包够，扣钱，给Alipay赋值扣完之后的金额 2. 钱不够，提示用户\n",
    "            # goods_list[choice][1] ----> 用户选择的商品的 价格\n",
    "            # goods_list[choice] = ['椰果奶茶中杯', 7]\n",
    "            if Alipay >= goods_list[int(choice)][1]:\n",
    "                Alipay = Alipay - goods_list[int(choice)][1] #扣钱\n",
    "                shopping_cart.append(goods_list[int(choice)])\n",
    "                print(\"已经将 【%s】加入到您的购物车，您的余额还有 【%s】\"%(goods_list[int(choice)][0],Alipay))\n",
    "            else:\n",
    "                print(\"您的支付宝余额不足，还想喝奶茶~~~~\")\n",
    "        else:\n",
    "            # ②. 编号不在列表范围内\n",
    "            print(\"您选择的商品不存在，请输入正确的编号（输入‘q’退出购买）\")\n",
    "\n",
    "    \n",
    "    elif choice == 'q':\n",
    "        # 二、用户输入 ‘q’ 退出\n",
    "        print(\"您的购物车有【%s】,您的余额还有【%s】\"%(shopping_cart,Alipay))\n",
    "        break\n",
    "    \n",
    "    else:\n",
    "        # 三、用户输入什么都不是\n",
    "        print(\"您输入有问题，请重新输入！请输入正确的商品编号（输入‘q’退出购买）\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 思考：假如有1万件商品？怎么做？\n",
    "# 请 使用  for + range（） 实现上述 5行代码的结果 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 珍珠奶茶小杯 6\n",
      "1 椰果奶茶中杯 7\n",
      "2 芝士奶盖大杯 8\n",
      "3 芋圆波波奶茶 14\n",
      "4 杨枝甘露 8\n"
     ]
    }
   ],
   "source": [
    "for i in range(5):\n",
    "    print(i,goods_list[i][0],goods_list[i][1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(goods_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "商品编号: 0 ,商品的名称: 珍珠奶茶小杯 ,商品价格: 6 \n",
      "商品编号: 1 ,商品的名称: 椰果奶茶中杯 ,商品价格: 7 \n",
      "商品编号: 2 ,商品的名称: 芝士奶盖大杯 ,商品价格: 8 \n",
      "商品编号: 3 ,商品的名称: 芋圆波波奶茶 ,商品价格: 14 \n",
      "商品编号: 4 ,商品的名称: 杨枝甘露 ,商品价格: 8 \n",
      "商品编号: 5 ,商品的名称: 多肉葡萄 ,商品价格: 12 \n"
     ]
    }
   ],
   "source": [
    "# 思考： 如果增加商品了，或者下架商品了  5 是不是变了？\n",
    "#        5 是什么？--> 商品个数 -----> 列表的长度决定的！\n",
    "for i in range(len(goods_list)):\n",
    "    print(\"商品编号: %s ,商品的名称: %s ,商品价格: %s \"%(i,goods_list[i][0],goods_list[i][1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
